我们可以点击Elasticsearch API以获取所需的响应,但是如果要修改API响应,以便我们更改显示格式或过滤掉某些字段,然后我们可以将这些选项与查询一起应用。 有一些常见的选项可以适用于API,在下面我们来介绍一些常用的选项。
准备数据
我们首先使用Bulk API来把我们的文档导入到Elasticsearch中:
1 | POST _bulk |
这样我们就有6个文档了。
Pretty=true
我们在我们的请求里加入?pretty=true可以使用这个选项使我们的显示格式更加漂亮。当我们调试我们的接口时,这个是推荐的用法。比如:
1 | GET twitter/_doc/1?pretty=true |
显示结果:
1 | { |
在一般的情况下,在Kibana的Dev tools中,显示就是这样的结果。
format
在默认的情况先返回的结果都是以JSON格式的。对于有些情况来说,我们可能需要的结果是yml格式的,那么我们可以使用format-yaml格式来返回yaml格式的结果:
1 | GET twitter/_doc/1?format=yaml |
返回结果:
1 | --- |
显然这个是yaml格式的结果。
human
有一些人类可读的值将以某种方式返回结果让我们更容易理解。 例如,3,600,000毫秒令人困惑,但是1个小时是清楚的。 设置human=true可将结果转换为更易读的响应。假如我们想得到当前索引的配置:
1 | GET twitter/_settings |
那么显示的结果是:
1 | { |
显然这里的create_date和created版本信息都是我们没法理解的。在这个时候如果我们加上human=true再来看看显示的结果:
1 | GET twitter/_settings?human=true |
这次显示的结果是:
1 | { |
这一次,我们可以清楚地看到creation_date_string及created_string的值了。
filter_path
在查询中使用filter_path参数,我们可以减少来自Elasticsearch。 它支持过滤器列表或通配符以匹配字段名称或部分字段名称。
首先,我们来做一个正常的查询:
1 | GET twitter/_search |
返回的结果是:
1 | { |
假如我们只想返回我们想要的一些字段,那么怎么办?我们可以通过配置filter_path来进行选择,比如:
1 | GET twitter/_search?filter_path=hits.hits._source.user, hits.hits._source.country |
在上面,我们通过filter_path来选择想要的user及country字段。返回的结果是:
1 | { |
flat_settings
将flat_settings过滤器设置为true将以flat格式返回结果。 如果设置为假,它将以更易理解的格式返回结果,比如,正常情况下:
1 | GET twitter/_settings |
返回的结果是:
1 | { |
如果我们设置flat_settings=true,那么:
1 | GET twitter/_settings?flat_settings=true |
返回的结果是:
1 | { |
————————————————
版权声明:本文为CSDN博主「Elastic 中国社区官方博客」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/UbuntuTouch/article/details/103792780